热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

敌机|战机_游戏开发新手入门教程13:从想法到设计的过程

篇首语:本文由编程笔记#小编为大家整理,主要介绍了游戏开发新手入门教程13:从想法到设计的过程相关的知识,希望对你有一定的参考价值。 在接下来的几节里,我会向你展示游戏

篇首语:本文由编程笔记#小编为大家整理,主要介绍了游戏开发新手入门教程13:从想法到设计的过程相关的知识,希望对你有一定的参考价值。



在接下来的几节里,我会向你展示游戏制作的整个流程,从开始的一个粗略的想法,到游戏设计,再到最终的游戏制作。

一个游戏通常开始于一个想法,这个想法可以是千奇百怪的,可以是五花八门的,甚至可以是可笑的。不论如何有一个想法,是一个游戏的开端。当你有了一个想法了以后,如果你希望它最终能够变成一个真正的游戏,那么你就必须要继续往前走,反复的思考,雕琢你的粗糙的想法,将它细化,形成一份具体的可行的游戏设计方案。

通常,当你将想法变成具体的游戏设计时,并不是那么顺利,你可能会发现这个想法不足之处太多,或者不切实际,亦或者这个想法的实现超出了你的能力范围,大部分的想法会在这一阶段被否定,或者被修改,你可能根本拿不出一份具体可行的游戏设计方案,亦或者,你的方案完全背离了起初的想法.....

无论你遇到的是哪种情况,都无需担心,因为这是游戏制作中再正常不过的事了,它告诉了我们两件事情:

  • 我们脑袋中的大部分的想法都不切实际。
  • 制作游戏是一项需要积累和反复练习的技能,没有人能一上来就做的很好。

言归正传,下面正式开始从想法到设计的过程。

首先,假设我们有了一个想法:我要做一个“打飞机”的游戏,要有一个炫酷的名字叫“太空保卫战”,我要控制着战机击落每一个入侵的敌人。

好了,现在我们有一个粗糙的想法了,我们甚至为游戏起了个名字,那么接下来呢,我们尝试为这个想法进行细化,让其变的更具体一点儿。

可以从下面这几个方面入手:

  • 这是一个太空射击游戏,所以游戏的主题背景是太空。
  • 我要能控制战机在太空中飞行,如何控制呢?因为这是一个手机上的游戏,所以一个比较好的控制方式是用手指点击战机,然后在屏幕中随意的拖动就可以控制战机的移动。
  • 战机需要进攻敌人,因此我们的战机要能够发射子弹。
  • 要有入侵的敌人,敌人如何入侵呢?最简单的方式就是不停的有敌人从屏幕上方飞下来,战机有两种选择,要么将敌机击毁,要么躲避敌机。

现在我们的想法已经有了些具体的内容了,我们打算有一个太空作为背景,使用拖拽的方式控制战机的移动,战机可以发射子弹,敌机不停的从上方下落,我们可以选择击毁敌机或者躲避敌机。

虽然想法已经丰富了很多,但是作为游戏设计,还是不够清晰具体。

游戏需要有一个目标或者也叫做任务,我们需要一个“目标”来作为玩游戏的动力,这里我们就将击毁敌机的数量当作一个目标,击毁的敌机数量越多,表示你越厉害。我们设置一个得分的数字记录,每击毁一架敌机,得分就加一。在游戏中尽可能多的击毁敌机,获得更高的分数,就是游戏的目标。

另外,游戏也需要有一个结束条件,总不能无止境的玩下去吧!这里,我们设定战机被任何一架敌机碰到,则游戏结束。

现在,游戏有了目标和结束条件,我们想法更加清晰和明确了:这是一个太空射击游戏,敌机不停的从上方入侵,玩家需要使用手指拖拽的方式控制战机移动,击毁或者躲避飞来的敌机,要在不被敌机碰到的前提下,击毁尽可能多的敌机,以获得更高的分数。

有了清晰的想法,下面我们可以做一些具体的设计了。

我们先从游戏的外观开始,画一些草图,来展示它看起来应该是什么样子。游戏开发新手入门教程13:从想法到设计的过程_游戏开发教程

这是一个游戏开始界面,它展示了游戏的名字,并且只有一个“开始”按钮,点击“开始”按钮就会正式进入游戏。游戏开发新手入门教程13:从想法到设计的过程_游戏开发教程_02

游戏大概是这个样子,敌机从上方不停的下落,战机不停的发射子弹,用手指拖拽战机,控制其移动,左上角显示的是游戏的得分。游戏开发新手入门教程13:从想法到设计的过程_游戏开发教程_03

游戏结束后,我们只简单的显示游戏结束的提示,并增加一个“重新开始”按钮,点击后可以重新开始游戏。

以上就是游戏看起来的样子,非常的简单,一个开始界面,一个游戏界面,一个结束界面。开始界面负责展示游戏的名字,游戏界面是我们进行游戏的地方,结束界面提示游戏结束了,并且可以重新开始。

在纸上画草图可以帮助你梳理想法,而且这些草图也会是你制作游戏过程中的最好的参照。

游戏了外貌有了,下面我们要深入其中来设计逻辑了。

首先,来划分一下游戏场景,这里,简单的划分为两个场景:

  • 开始场景
  • 游戏场景

“开始场景”只负责开始界面,点击“开始游戏”按钮,就会进入到“游戏场景”,我们将游戏的所有的逻辑都放在“游戏场景”中。

接下来,分析一下战机,战机需要能通过拖拽来控制移动,另外,战机碰撞到敌机时,游戏就结束了。所以,战机需要处理以下的逻辑:

  • 当手指点击战机拖拽时要做出响应,战机位置跟随手指移动。
  • 战机碰撞到敌机时,则游戏结束,显示游戏结束提示。

接着,看一下子弹的逻辑,游戏一开始,战机就会不停的发射子弹,所以子弹需要用到“克隆”,当子弹被“克隆”出来后,应该位于战机的上方,这样看起来才像是战机发射的子弹,所以子弹被“克隆”出来后需要调整其位置,最后,当子弹击中敌机时,子弹就应该消失。所以子弹需要处理以下逻辑:

  • 游戏开始后就不停的克隆子弹。
  • 当子弹被“克隆”出来后,将其位置设置在战机的位置。
  • 当子弹碰撞到“敌机”时,子弹应该被销毁。

接着,来看敌机,敌机需要不停的从屏幕上方的随机位置向下落,我们需要不停的产生敌机,所以需要对敌机进行“克隆”,新生成的敌机需要位于屏幕上方的随机位置,所以在敌机“克隆完成时”,需要对位置进行设置。另外,当敌机被子弹击中后,会被击毁,需要处理与子弹的碰撞,最后,敌机被击毁后,需要发送一个事件告诉得分加一。所以,敌机需要处理下面这些逻辑:

  • 游戏开始后就要每间隔一定的时间“克隆”敌机。
  • 当敌机被“克隆”出来后,将位置设置为屏幕顶端的随机位置。
  • 当子弹碰撞到敌机时,敌机销毁,并发送一个“敌机销毁”事件。

最后,再来看一下得分,它只负责记录敌机被击毁的数量,所以它只需要关注是否有“敌机销毁”的事件。

  • 查看是否有“敌机销毁”事件,如果有,就将得分加一

终于,我们有了一个比较完整的设计,有草图显示了游戏看起来的样子,有了游戏中每个部分的具体逻辑,来展示游戏运行时每个部分所应该负责的任务。

总结一下:

我们展示了一个想法是如何通过不断的完善和细化,最终变成一份游戏设计的。

下一节,我们会将所有学过的内容结合起来,做出自己的第一款小游戏。

练习一下:

游戏设计是需要不断的练习和打磨的,尝试将自己的想法变成一份游戏设计,不停的打磨,直到其完善。


我是会做游戏也会教你做游戏的小蚂蚁,想学习做游戏的话,关注我就对啦!欢迎关注公众号【小蚂蚁教你做游戏】,领取全网最全的微信小游戏开发原创教程资料,或者加小蚂蚁vx(xiaomayi6669),交个朋友。


推荐阅读
  • 在Python编程中,探讨了并发与并行的概念及其区别。并发指的是系统同时处理多个任务的能力,而并行则指在同一时间点上并行执行多个任务。文章详细解析了阻塞与非阻塞操作、同步与异步编程模型,以及IO多路复用技术的应用。通过模拟socket发送HTTP请求的过程,展示了如何创建连接、发送数据和接收响应,并强调了默认情况下socket的阻塞特性。此外,还介绍了如何利用这些技术优化网络通信性能和提高程序效率。 ... [详细]
  • 深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用
    深入解析Spring Boot启动过程中Netty异步架构的工作原理与应用 ... [详细]
  • 字节跳动深圳研发中心安全业务团队正在火热招募人才! ... [详细]
  • 本研究提出了一种方法,用于判断两个数组中的元素是否相同,而不考虑其顺序。该方法通过检查数组中每个元素的出现次数来实现。具体实现如下:首先验证输入参数是否为数组,然后对两个数组进行排序并逐个比较元素。若所有元素均相等,则返回 `true`,否则返回 `false`。此方法适用于需要忽略顺序的数组比较场景。 ... [详细]
  • 谷歌发布视频数据库“AVA”,中国联通携手腾讯共建云数据中心 | 24小时大数据动态
    谷歌发布视频数据库“AVA”,中国联通携手腾讯共建云数据中心 | 24小时大数据动态 ... [详细]
  • 近年来,BPM(业务流程管理)系统在国内市场逐渐普及,多家厂商在这一领域崭露头角。本文将对当前主要的BPM厂商进行概述,并分析其各自的优势。目前,市场上较为成熟的BPM产品主要分为两类:一类是综合型厂商,如IBM和SAP,这些企业在整体解决方案方面具有明显优势;另一类则是专注于BPM领域的专业厂商,它们在特定行业或应用场景中表现出色。通过对比分析,本文旨在为企业选择合适的BPM系统提供参考。 ... [详细]
  • 2021年度回顾与深度分析
    2021年度回顾与深度分析 ... [详细]
  • Java集合框架特性详解与开发实践笔记
    Java集合框架特性详解与开发实践笔记 ... [详细]
  • 在并发编程中,`as-if-serial`原则确保了即使编译器和处理器对指令进行重排序,单线程的执行结果也不会受到影响。这一原则要求编译器、运行时环境和处理器必须严格遵守,以保证程序的正确性。本文深入探讨了`volatile`关键字的内存模型,详细分析了其在多线程环境中的可见性和有序性特性,以及如何通过`as-if-serial`规则来确保数据的一致性和可靠性。 ... [详细]
  • Node.js 教程第五讲:深入解析 EventEmitter(事件监听与发射机制)
    本文将深入探讨 Node.js 中的 EventEmitter 模块,详细介绍其在事件监听与发射机制中的应用。内容涵盖事件驱动的基本概念、如何在 Node.js 中注册和触发自定义事件,以及 EventEmitter 的核心 API 和使用方法。通过本教程,读者将能够全面理解并熟练运用 EventEmitter 进行高效的事件处理。 ... [详细]
  • 字节跳动青训营:Go语言进阶培训与依赖管理深入解析
    本文详细探讨了字节跳动青训营中关于Go语言进阶培训的核心内容,重点讲解了并行与并发的区别、Goroutine的使用、CSP模型及Channel机制在并发安全中的应用,并介绍了LockWithGroup的实现方式。此外,文章还深入解析了Go语言的依赖管理机制,包括GoPath、GoVendor和GoModule的使用方法及其在依赖分发和回源过程中的作用。 ... [详细]
  • Spring Security 认证模块的项目构建与初始化
    本文详细介绍了如何构建和初始化Spring Security认证模块的项目。首先,通过创建一个分布式Maven聚合工程,该工程包含四个模块,分别为core、browser(用于演示)、app等,以构成完整的SeehopeSecurity项目。在项目构建过程中,还涉及日志生成机制,确保能够输出关键信息,便于调试和监控。 ... [详细]
  • 《软件测试精要》深度解析与实战经验分享
    《软件测试精要》深度解析与实战经验分享,系统梳理了软件测试的核心概念与关键原则,结合实际项目中的测试经验和教训,详细探讨了测试分类、测试权衡要素、测试效率、测试覆盖率以及测试框架的引入和用例设计等内容,为读者提供了全面而实用的指导。 ... [详细]
  • 本文详细介绍了如何在 Grafana 中独立于 Alertmanager 配置邮件和微信告警。具体步骤包括配置 SMTP 服务器以实现邮件告警,以及设置微信告警的集成方式。通过这些配置,用户可以更灵活地管理和接收来自 Grafana 的告警通知,确保及时响应系统异常。文章还提供了详细的配置示例和常见问题的解决方案,帮助用户顺利完成设置。 ... [详细]
  • 作为140字符的开创者,Twitter看似简单却异常复杂。其简洁之处在于仅用140个字符就能实现信息的高效传播,甚至在多次全球性事件中超越传统媒体的速度。然而,为了支持2亿用户的高效使用,其背后的技术架构和系统设计则极为复杂,涉及高并发处理、数据存储和实时传输等多个技术挑战。 ... [详细]
author-avatar
哈罗xeh_406
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有